if (!wd->wl_pointer)
return retval;
- wl_pointer_set_cursor (wd->wl_pointer,
- wd->enter_serial,
- wd->pointer_surface,
- x, y);
if (buffer)
{
wl_surface_attach (wd->pointer_surface, buffer, 0, 0);
wl_surface_set_buffer_scale (wd->pointer_surface, scale);
wl_surface_damage (wd->pointer_surface, 0, 0, w, h);
wl_surface_commit (wd->pointer_surface);
+
+ wl_pointer_set_cursor (wd->wl_pointer,
+ wd->enter_serial,
+ wd->pointer_surface,
+ x, y);
+ }
+ else
+ {
+ wl_pointer_set_cursor (wd->wl_pointer,
+ wd->enter_serial,
+ NULL,
+ 0, 0);
+
+ wl_surface_attach (wd->pointer_surface, NULL, 0, 0);
+ wl_surface_commit (wd->pointer_surface);
}
if (wd->grab_cursor)